import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.sql.ResultSet;


public class DisplayJDBC 
{
	private AdministradorPersistencia adm;
	
	public DisplayJDBC ()
	{
		adm = new AdministradorPersistencia();
	}
	public static void main(String[] args) 
	{
		DisplayJDBC dis = new DisplayJDBC();
		dis.mostrarMenu();

	}
	public void mostrarMenu()
	{
		BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));
	 	
		//Imprimo menu de opciones
		System.out.println("MENU DE OPCIONES");
		System.out.println("-------------------------------------------------------");
		System.out.println("1.- Ejecutar Query Select");
		System.out.println("2.- Modificar registro");
		System.out.println("3.- Eliminar registro");
		System.out.println("4.- Insertar registro");
		System.out.println("5.- Salir");
		System.out.println("-------------------------------------------------------");
		System.out.print("Opcion:");
		try
		{
			char s = (char)reader.read();
			
		  	switch (s)
		  	{
			  	case '1' : {
			  				this.ejecutarQuery();
			  				break;
			  				}
			  	case '2' : {
			  				this.modificarRegistro();
			  				break;
			  				}
			  	case '3' : {
	  						this.eliminarRegistro();
	  						break;
	  						}
			  	case '4' : {
			  				this.insertarRegistro();
			  				break;
			  				}
			  	case '5' : {
			  				this.salir();
			  				break;			  		
			  				}
		  	}
		  	mostrarMenu();
		}
		catch (Exception e)
		{
			System.out.print(e.getStackTrace());
		}

	}
	public void ejecutarQuery()
	{
		adm.connect();
		ResultSet rs = adm.ejecutarSelect();
		try
		{
			System.out.println ("Nombre \t\t Domicilio \t\t DNI");
			while (rs.next()) //Next cambia de fila o avisa si no hay mas registros
			{
				System.out.print (rs.getString("LU")+ "\t\t");
				System.out.print (rs.getString("Nombre")+ "\t\t");
				
			}
			adm.releaseConnection();
		}
		catch(Exception e)
		{
			System.out.println (e.getStackTrace());
		}
	}
	public void modificarRegistro()
	{
		try
		{
			System.out.println ("Ingrese dni a modificar:");
			BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));
			String dni = reader.readLine(); 
			System.out.println ("Ingrese nuevo nombre:");
			String nombre = reader.readLine();
			
			adm.connect();
			adm.ejecutarUpdate(dni, nombre);
			System.out.println ("Actualizacion realizada.");
			adm.releaseConnection();
		}
		catch (Exception e)
		{
			
		}
	}
	public void eliminarRegistro()
	{
		try
		{
			System.out.println ("Ingrese dni a eliminar:");
			BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));
			String dni = reader.readLine(); 
						
			adm.connect();
			adm.ejecutarDelete(dni);
			System.out.println ("Actualizacion realizada.");
			adm.releaseConnection();
		}
		catch (Exception e)
		{
			
		}
	}
	public void insertarRegistro()
	{
		try
		{
			System.out.println ("Ingrese dni :");
			BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));
			String dni = reader.readLine(); 
			System.out.println ("Ingrese  nombre:");
			String nombre = reader.readLine();
			System.out.println ("Ingrese  domicilio:");
			String dom = reader.readLine();
			
			adm.connect();
			adm.ejecutarInsert(dni, nombre, dom);
			System.out.println ("Actualizacion realizada.");
			adm.releaseConnection();
		}
		catch (Exception e)
		{
			
		}
		
	}
	public void salir() 
	{
		System.exit(0);
	}

}
